package com.triones.yjj.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.triones.yjj.entity.MemberActivityRelateDO;
import com.triones.yjj.entity.ShareDO;
import com.triones.yjj.entity.vo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 客户分享 mapper 接口
 *
 * @Author: triones
 */
public interface ShareMapper extends BaseMapperPlus<ShareMapper, ShareDO, ShareVO> {

    /**
     * 获取分享人列表
     * @param build
     * @param wrapper
     * @return
     */
    Page<ShareListVO> sharePageList(@Param("page") Page<Object> build, @Param(Constants.WRAPPER) QueryWrapper<ShareDO> wrapper);

    /**
     * 客户分享排行列表对象
     * @param page
     * @param wrapper
     * @return
     */
    Page<WxShareSortVO> selectShareSortPageList(@Param("page") Page<ShareDO> page, @Param(Constants.WRAPPER) Wrapper<ShareDO> wrapper);

    /**
     * 活动邀请奖励列表
     * @param build
     * @param wrapper
     * @return
     */
    Page<InviteRewardListVO> inviteRewardPageList(@Param("page") Page<Object> build,@Param(Constants.WRAPPER) Wrapper<MemberActivityRelateDO> wrapper);

    /**
     * 邀请详情信息
     * @param id
     * @return
     */
    WxShareVO getShareDetail(@Param("id") Long id);

    /**
     * 获取当前六小时浏览人数
     * @param activityId
     * @return
     */
    List<Integer> theFirstSixHours(@Param("activityId") Long activityId);

    /**
     * 统计购买人数
     * @param userId
     * @param activityId
     * @return
     */
    int countMemberBuyNumberTotal(@Param("userId") Long userId,@Param("activityId") Long activityId);
}
